热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

峰值|单价_稳定性实践:容量规划之业务场景分析

篇首语:本文由编程笔记#小编为大家整理,主要介绍了稳定性实践:容量规划之业务场景分析相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了稳定性实践:容量规划之业务场景分析相关的知识,希望对你有一定的参考价值。




上期文章我们从整体上介绍了极端业务场景下,如何做好稳定性保障工作。今天,我们结合电商大促这个场景,来看一下容量规划这项工作。

稳定性保障的一个难点是我们要面对一个非常复杂的因素,那就是业务模型,或者叫用户访问模型。因为它的不确定性,会衍生出很多不同的业务场景,而不同的场景,就会导致我们的应对策略有所不同。

所以,容量规划,就是对复杂业务场景的分析,通过一定的技术手段(如压力测试),来达到对资源合理扩容、有效规划的过程。

容量规划的场景分析

我们一直在讲,不能脱离业务场景空谈技术,所以我们还是先从电商大促这个业务场景入手来分析。

对于电商来说,核心链路就是交易链路。简单来说,就是用户要能登录,然后能通过浏览商品详情页下单订购,或者加购物车,通过购物车进行订购结算,这个过程中还要进行各种优惠的批价处理,库存的判断等等,形成订购之后,最终还要能够支付成功,一个完整的交易支付流程才算走完。

在大促的峰值时刻,场景可能又有不同,因为绝大部分用户选购什么商品,早已加入到了购物车中,且各种优惠券也已经申领成功,就等着最后这个时间点直接下单完成订购。所以,在大促这个场景下,交易下单这个环节是核心中的核心。

因为这个时间点的交易流量实在是太高了,所以近两年电商也改变了一些玩法,其目的就是希望减少峰值流量,让流量在整个大促阶段更加均匀。具体的运营和玩法细节这里就不详细介绍了。

那么,我们要应对的场景就相对清晰了,就是在大促零点峰值时刻,评估好交易流量,再进一步转化一下,就是每秒的交易订单峰值。

下图就是我们进行评估的路径分析示例,用户首先从首页、大促会场或者微信里的分享页面转化过来,然后通过搜索、店铺、详情页以及购物车进行最后的转化,形成订购下单和最终的支付。

稳定性实践:容量规划之业务场景分析_压测

具体数值的评估上,我们会跟产品运营团队共同讨论,整体的业务目标由运营团队给出,比如GMV目标收入,UV、PV、转化率、客单价以及商品单价,这些都是业务目标。通过这 些业务数据,我们根据上图的路径逐步分解,就会逐步得出每一层的流量数据。

假设大促会场会有500万UV,根据GMV和客单价,如果要完成目标,推导出到详情页的转化率需要达到60%(产品运营需要努力达成这个业务目标),那详情页的UV就是300万; 根据用户访问行为分析,对详情页的各个应用产生的QPS再做一个评估,这样单个应用的容量值就有了,然后再进一步向下转化,能够形成订购,形成加购物车的又有多少,再进行 评估,最后就可以得出一个交易下单的峰值以及支付的峰值。

计算出峰值后,还要与历年评估的峰值数据,以及实际的峰值数据进行对比,根据对比情况进行调整。评估出来的这个峰值,就是系统要承诺支撑的容量,因为只有达到这个容量值,才能支撑业务完成对应的业务目标。

总结来说,这就是一个根据业务GMV、UV等目标,对技术上的交易下单峰值这个核心指标进行推导的过程。 那么,接下来就根据评估的各个应用和基础服务需要承担的流量,先扩容一轮,同时开始构造数据模型和压测模型来模拟真实流量,以此验证我们的系统是否能够达标,过程中再进 行局部的扩容和优化。

一般来说,先进行单链路压测,比如购物车订购,详情页订购等场景的压测,达标后再进行多链路压测,最后再进行全链路压测,直至达成目标。为了能够保有一定的容量缓冲,最后几轮压测,我们会将压测流量调整到目标值的120%或150%,来保证系统能够应对足够极端的场景,这样才能够游刃有余地实现100%的目标。

构造压测的数据模型

如何构造压测的数据模型呢?这是一个比较复杂的问题,因为我们靠拍脑袋或者靠猜,是无法准确评估的。通常情况下,我们从以下两方面入手。

一方面,数据模型要接近真实场景。这就需要我们不断地积累经验,记录早期大促的详细数据和真实场景(比如不同用户购物车里的商品数量、优惠策略、不同渠道比例等,以及各种 运营活动的玩法),这样可以最大程度地模拟真实的用户访问模型。这个过程,蘑菇街更多的还是手工推导,像阿里做得比较极致,可以通过BI系统,将往年模型和当年模型进行分 析比对,直接生成对应的数据模型,甚至是多套模型。

另一方面,数据量要接近真实场景。数据量有很多维度,比如用户数量、商品数量、店铺数量、优惠券数量等等。这里一般会通过数据工厂这样的工具平台,结合运营团队给出的数据 量评估,快速制造出对应量级的数据。另一种方式就是从线上将真实数据,进行敏感信息脱敏处理后,导出到另一张影子表中,专门提供给压测使用,这样做的好处是不会污染线上 运行数据。

总结

通过上面的分享,我们应该不难发现,容量规划工作,单纯靠技术能力是无法解决的,需要经验和数据的积累,到了阿里这个体量就必须借助人工智能和各类分析算法这样更高级的手段才能解决。

同时,容量问题,也不是简简单单通过资源扩容这种成本投入就可以解决的,扩容是最后的执行手段,但是怎么合理的、科学的扩容,就需要有合理的规划。当业务体量和复杂度到达一定程度时,就要依靠技术人员对业务的深入理解。能够合理规划业务、技术和数据模型,是需要一些经验积累,以及在各类极端场景下的经历。

最后,如此复杂的技术体系,也只有在同样复杂的场景下才会被催生出来,才会有存在意义。所以,我们在学习借鉴时,还是要从各自的实际场景出发,慢慢积累,大可不必强求短期速成。

你自己是否有过容量规划的经历?遇到过哪些问题?欢迎你留言与我讨论。


推荐阅读
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
author-avatar
星宇ooo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有